<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div>div</div>
<p>p</p>
<div>div</div>
<p>p</p>
<div>div</div>
<p>p</p>
<div>div</div>
<script>
//    function select( selector ) {
//        var obj = document.querySelectorAll( selector ); // 伪数组
//
//        obj.each = function ( callback ) {
//            // 要求遍历 obj, 怎么遍历??? 使用 callback 处理伪数组 obj 中的每一个元素
//            each( this, callback );
//            // this 是什么, 看谁调用的方法
//        };
//
//        return obj;
//    }
//
//    function each(arr,callback){
//        for(var i=0;i<arr.length;i++){
//            callback(arr[i],i);
//        }
//    }
//
//    var nodes = select('div,p');
//    nodes.each(function(v){
//        v.style.border='1px solid pink';
//    });




//    function each(arr,callback){
//        for(var i=0;i<arr.length;i++){
//            callback(arr[i],i);
//        }
//    }
//
//    function select(selector){
//        var obj = document.querySelectorAll(selector);
//        obj.each = function(callback){
//            each(this,callback);
//        };
//
//        return obj;
//
//    }
//    select('div,p').each(function(v){
//        v.style.border='1px dashed red';
//    });


//    function s(selector){
//        var obj=document.querySelectorAll(selector);
//        obj.each=function(callback){
//            e(this,callback);
//        };
//        return obj;
//    }
//    function e(arr,callback){
//        for(var i=0;i<arr.length;i++){
//            callback(arr[i],i);
//        }
//    }
//    s('div,p').each(function(v){
//        v.style.border='1px dashed pink';
//    });


//    function s(selector){
//        var obj=document.querySelectorAll(selector);
//        obj.each=function(callback){
//            bl(this,callback);
//        };
//        return obj;
//    }
//    function bl(arr,callback){
//        for(var i=0;i<arr.length;i++){
//            callback(arr[i],i);
//        }
//    }
//    s('div,p').each(function(v){
//        v.style.border='1px solid pink';
//    });



    function s(selector){
        var obj=document.querySelectorAll(selector);
        obj.each=function(callback){
            bl(obj,callback);
        };
        return obj;
    }
    function bl(arr,callback){
        for(var i=0;i<arr.length;i++){
            callback(arr[i],i);
        }
    }
    s('div,p').each(function(v){
        v.style.border='1px solid lightgreen';
    });

</script>
</body>
</html>